// Copyright (c) 2022.
// Written by Li Yanxiao. All rights reserved

#ifndef SIGNED_DISTANCE_FIELD_DRAW_H
#define SIGNED_DISTANCE_FIELD_DRAW_H

#include <opencv2/opencv.hpp>
#include <Eigen/Dense>

/*
 * 将每个点到折线的距离归一化为-255～255之间的值
 * 负数将会在draw函数中被处理为另一个色彩通道上的0~255的值
 * 注：输出指针dst可以和输入的distances一致
 * 这个函数会被draw自动调用，所以不用手动输入它
 */
Eigen::MatrixXd* normalize(Eigen::MatrixXd *dst, const Eigen::MatrixXd *distances);

/*
 * 把每个点对应的距离长度用颜色表示，并画到image上
 * 距离大于0为红色，小于0为蓝色
 */
void draw(cv::Mat& image, const Eigen::MatrixXd *distances);

#endif //SIGNED_DISTANCE_FIELD_DRAW_H
